import os
import zipfile
import shutil


def extract_media_from_docx(docx_path, output_dir):
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    # 解压 docx 文件
    with zipfile.ZipFile(docx_path, 'r') as zip_ref:
        zip_ref.extractall(output_dir)

    media_dir = os.path.join(output_dir, 'word/media')

    if not os.path.exists(media_dir):
        print("文档中没有媒体文件!")
        return

    # 获取所有的媒体文件
    for file_name in os.listdir(media_dir):
        file_path = os.path.join(media_dir, file_name)
        if os.path.isfile(file_path):
            shutil.move(file_path, output_dir)

    # 删除 `word` 文件夹
    shutil.rmtree(os.path.join(output_dir, 'word'))

    print(f"所有媒体文件已保存到: {output_dir}")


if __name__ == '__main__':
    docx_path = '文档.docx'
    output_dir = 'img'
    extract_media_from_docx(docx_path, output_dir)